x

Evaluate Reverse Polish Notation

Leetcode #150 | Medium | Стек | Математика

Идея

Просто стек

Big-O

  • Время O(N)
  • Память O(N)

Код

class Solution {
    public int evalRPN(String[] tokens) {
        Deque<Integer> st = new ArrayDeque<>();
        for (String t : tokens) {
            if (t.equals("+")) st.push(st.pop() + st.pop());
            else if (t.equals("*")) st.push(st.pop() * st.pop());
            else if (t.equals("-")) { int b = st.pop(), a = st.pop(); st.push(a - b); }
            else if (t.equals("/")) { int b = st.pop(), a = st.pop(); st.push(a / b); }
            else st.push(Integer.parseInt(t));
        }
        return st.pop();
    }
}
Left-click: follow link, Right-click: select node, Scroll: zoom
x